// // pages/record/record.js
// Page({

//   /**
//    * 页面的初始数据
//    */
//   data: {
// list:[],
// isLoading: true // 新增加载状态
//   },
//   mysql(){
//  // 调用云函数
//  wx.cloud.callFunction({
//   name: 'mysql', // 云函数的名称
//   data: {}, // 传递给云函数的参数（如果需要）
//   success: (res)=> {
//     console.log('云函数调用成功', res);
//     // 处理时间格式
//     const formattedList = res.result.map(item => {

//   //方案2：直接使用 GitHub Raw 链接（备用）
//         // let  imageUrl = `https://raw.githubusercontent.com/zibi666/face_images/master/${item.image.trim()}`;
//         let imageUrl;
//         // 如果 item.image 是完整 URL，直接使用
//         if (item.image.includes('http')) {
//           imageUrl = item.image.trim();
//         } 
//         // 否则拼接 jsDelivr CDN 地址
//         else {
//           // 提取文件名（假设 item.image 是类似 "2025/06/upgit_20250611_1749606689.jpg" 的格式）
//           const filename = item.image.replace(/^.*[\\\/]/, '').trim(); // 提取最后一部分
//           imageUrl = `https://cdn.jsdelivr.net/gh/zibi666/face_images@master/${filename}`;
//         }


 
//       return {
//         ...item, // 保留原有字段
//         etime: this.formatTime(item.etime) ,// 修改 etime 字段
//         image: item.image.trim() // 清理URL中的特殊字符

//       };
//     });

//     this.setData({
//       list: formattedList // 存储处理后的数据
//     });

//     // console.log('处理后的列表数据:', this.data.list);
//     // wx.showToast({
//     //   title: '云函数调用成功',
//     //   icon: 'success',
//     //   duration: 2000
//     // });

//      // 模拟网络延迟（实际项目可以去掉）
//      setTimeout(() => {
//       this.setData({
//         list: formattedList,
//         isLoading: false
//       });
//     }, 800);
//   },
//   fail: function(err) {
//     console.error('云函数调用失败', err);
//     wx.showToast({
//       title: '云函数调用失败',
//       icon: 'none',
//       duration: 2000
//     });
//   }
// });
//   },

// // 新增方法：格式化时间
// formatTime(isoTime) {
//   const date = new Date(isoTime);
//     // 减去8小时时区差
//     date.setHours(date.getHours() - 8);
//   const year = date.getFullYear();
//   const month = String(date.getMonth() + 1).padStart(2, '0');
//   const day = String(date.getDate()).padStart(2, '0');
//   const hours = String(date.getHours()).padStart(2, '0');
//   const minutes = String(date.getMinutes()).padStart(2, '0');
//   const seconds = String(date.getSeconds()).padStart(2, '0');

//   return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
// },

// // 新增图片预览方法
// previewImage(e) {
//   const currentUrl = e.currentTarget.dataset.src;
//   const urls = this.data.list.map(item => item.image);
  
//   wx.previewImage({
//     current: currentUrl, // 当前显示图片的http链接
//     urls: urls // 需要预览的图片http链接列表
//   });
// },
//   /**
//    * 生命周期函数--监听页面加载
//    */
//   onLoad(options) {
// this.mysql();
//   },

//   /**
//    * 生命周期函数--监听页面初次渲染完成
//    */
//   onReady() {

//   },

//   /**
//    * 生命周期函数--监听页面显示
//    */
//   onShow() {

//   },

//   /**
//    * 生命周期函数--监听页面隐藏
//    */
//   onHide() {

//   },

//   /**
//    * 生命周期函数--监听页面卸载
//    */
//   onUnload() {

//   },

//   /**
//    * 页面相关事件处理函数--监听用户下拉动作
//    */
//   onPullDownRefresh() {

//   },

//   /**
//    * 页面上拉触底事件的处理函数
//    */
//   onReachBottom() {

//   },

//   /**
//    * 用户点击右上角分享
//    */
//   onShareAppMessage() {

//   }
// })



Page({
  data: {
    list: [],         // 存储图片列表
    isLoading: true,  // 加载状态
  },

  // 生命周期函数--监听页面加载
  onLoad(options) {
    this.loadImages();  // 加载图片（缓存或云函数获取）
    this.startPolling(); // 开始轮询
  },

  // 加载图片数据（缓存或云函数）
  loadImages() {
    const cachedList = wx.getStorageSync('imageList');  // 获取缓存中的图片数据

    if (cachedList && cachedList.length > 0) {
      this.setData({
        list: cachedList,
        isLoading: false
      });
    } else {
      this.mysql();  // 如果没有缓存，则从云函数获取数据
    }
  },

  // 调用云函数 mysql 获取数据
  mysql() {
    wx.cloud.callFunction({
      name: 'mysql',
      data: {},
      success: (res) => {
        console.log('云函数调用成功', res);

        const formattedList = res.result.map(item => {
          let imageUrl;
          // 判断是否是完整的 URL 地址
          if (item.image.includes('http')) {
            imageUrl = item.image.trim();
          } else {
            const filename = item.image.replace(/^.*[\\\/]/, '').trim();
            imageUrl = `https://cdn.jsdelivr.net/gh/zibi666/face_images@master/${filename}`;
          }

          return {
            ...item,
            etime: this.formatTime(item.etime),
            image: imageUrl.trim()
          };
        });
// 按 etime 字段倒序排列（最新时间在前）
formattedList.sort((a, b) => new Date(b.etime) - new Date(a.etime));


        // 将新的图片列表缓存到本地
        wx.setStorageSync('imageList', formattedList);
        this.setData({
          list: formattedList,
          isLoading: false
        });
      },
      fail: (err) => {
        console.error('云函数调用失败', err);
        wx.showToast({
          title: '数据加载失败',
          icon: 'none',
        });
      }
    });
  },

  // 格式化时间
  formatTime(isoTime) {
    const date = new Date(isoTime);
    date.setHours(date.getHours() - 8);
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    const hours = String(date.getHours()).padStart(2, '0');
    const minutes = String(date.getMinutes()).padStart(2, '0');
    const seconds = String(date.getSeconds()).padStart(2, '0');
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  },

  // 图片预览功能
  previewImage(e) {
    const currentUrl = e.currentTarget.dataset.src;
    const urls = this.data.list.map(item => item.image);
    wx.previewImage({
      current: currentUrl,
      urls: urls
    });
  },

  // 启动轮询检查数据更新
  startPolling() {
    // 每 3秒轮询一次
    this.intervalId = setInterval(() => {
      this.mysql();  // 定期调用 mysql 获取最新的数据
    }, 3000);
  },

  // 关闭轮询
  stopPolling() {
    clearInterval(this.intervalId);
  },

  // 页面卸载时停止轮询
  onUnload() {
    this.stopPolling();
  }
});


